home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / XML Utilities / Professional Programmer XSL IDE / Xselerator25.msi / Data.Cab / F45482_xsDateSort.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2001-07-23  |  1.1 KB  |  38 lines

  1. <xsl:stylesheet version='1.0'
  2. xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
  3. xmlns:m="mmm"
  4. >
  5. <xsl:output omit-xml-declaration="yes"/>
  6. <xsl:key name="myKey" match="person/date" use="concat(../account, '::',
  7. .)"/>
  8.  
  9.     <m:month name="Jan" value="0"/>
  10.     <m:month name="Feb" value="1"/>
  11.     <m:month name="Mar" value="2"/>
  12.     <m:month name="Apr" value="3"/>
  13.     <m:month name="May" value="4"/>
  14.     <m:month name="Jun" value="5"/>
  15.     <m:month name="Jul" value="6"/>
  16.     <m:month name="Aug" value="7"/>
  17.     <m:month name="Sep" value="8"/>
  18.     <m:month name="Oct" value="9"/>
  19.     <m:month name="Nov" value="10"/>
  20.     <m:month name="Dec" value="11"/>
  21.     
  22.     
  23.     <xsl:template match="/">
  24.         <xsl:variable name="months" select="document('')//m:month"/>
  25.     
  26.     <xsl:for-each 
  27.         select="/person/date[generate-id(.)=generate-id(key('myKey', concat(
  28. ../account, '::', .))[1])]">
  29.     
  30.         <xsl:sort select="$months[ starts-with( current(),  @name ) ]/@value"
  31. data-type="number" order="descending"/>
  32.     <xsl:copy-of select="."/>
  33.     <xsl:text> </xsl:text>
  34.     </xsl:for-each>        
  35.     </xsl:template>
  36. </xsl:stylesheet>
  37.  
  38.